# RUN: yaml2obj %s -o=%t.obj
# RUN: llvm-readobj --codeview-merged-types %t.obj | FileCheck %s --check-prefix=MERGED
# RUN: llvm-readobj --codeview-merged-types --codeview-ghash %t.obj | FileCheck %s --check-prefix=MERGED

# MERGED: Format: COFF-x86-64
# MERGED-NEXT: Arch: x86_64
# MERGED-NEXT: AddressSize: 64bit
# MERGED-NEXT: MergedTypeStream [
# MERGED-NEXT:   ArgList (0x1000) {
# MERGED-NEXT:     TypeLeafKind: LF_ARGLIST (0x1201)
# MERGED-NEXT:     NumArgs: 0
# MERGED-NEXT:     Arguments [
# MERGED-NEXT:     ]
# MERGED-NEXT:   }
# MERGED-NEXT:   Modifier (0x1001) {
# MERGED-NEXT:     TypeLeafKind: LF_MODIFIER (0x1001)
# MERGED-NEXT:     ModifiedType: void (0x3)
# MERGED-NEXT:     Modifiers [ (0x3)
# MERGED-NEXT:       Const (0x1)
# MERGED-NEXT:       Volatile (0x2)
# MERGED-NEXT:     ]
# MERGED-NEXT:   }
# MERGED-NEXT:   Procedure (0x1002) {
# MERGED-NEXT:     TypeLeafKind: LF_PROCEDURE (0x1008)
# MERGED-NEXT:     ReturnType: void (0x3)
# MERGED-NEXT:     CallingConvention: NearC (0x0)
# MERGED-NEXT:     FunctionOptions [ (0x0)
# MERGED-NEXT:     ]
# MERGED-NEXT:     NumParameters: 0
# MERGED-NEXT:     ArgListType: () (0x1000)
# MERGED-NEXT:   }
# MERGED-NEXT:   Pointer (0x1003) {
# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT:     PointeeType: const volatile void (0x1001)
# MERGED-NEXT:     PtrType: Near64 (0xC)
# MERGED-NEXT:     PtrMode: Pointer (0x0)
# MERGED-NEXT:     IsFlat: 0
# MERGED-NEXT:     IsConst: 1
# MERGED-NEXT:     IsVolatile: 0
# MERGED-NEXT:     IsUnaligned: 0
# MERGED-NEXT:     IsRestrict: 0
# MERGED-NEXT:     IsThisPtr&: 0
# MERGED-NEXT:     IsThisPtr&&: 0
# MERGED-NEXT:     SizeOf: 8
# MERGED-NEXT:   }
# MERGED-NEXT:   Pointer (0x1004) {
# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT:     PointeeType: const volatile void* const (0x1003)
# MERGED-NEXT:     PtrType: Near64 (0xC)
# MERGED-NEXT:     PtrMode: Pointer (0x0)
# MERGED-NEXT:     IsFlat: 0
# MERGED-NEXT:     IsConst: 1
# MERGED-NEXT:     IsVolatile: 0
# MERGED-NEXT:     IsUnaligned: 0
# MERGED-NEXT:     IsRestrict: 0
# MERGED-NEXT:     IsThisPtr&: 0
# MERGED-NEXT:     IsThisPtr&&: 0
# MERGED-NEXT:     SizeOf: 8
# MERGED-NEXT:   }
# MERGED-NEXT:   Pointer (0x1005) {
# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT:     PointeeType: const volatile void* const* const (0x1004)
# MERGED-NEXT:     PtrType: Near64 (0xC)
# MERGED-NEXT:     PtrMode: Pointer (0x0)
# MERGED-NEXT:     IsFlat: 0
# MERGED-NEXT:     IsConst: 1
# MERGED-NEXT:     IsVolatile: 0
# MERGED-NEXT:     IsUnaligned: 0
# MERGED-NEXT:     IsRestrict: 0
# MERGED-NEXT:     IsThisPtr&: 0
# MERGED-NEXT:     IsThisPtr&&: 0
# MERGED-NEXT:     SizeOf: 8
# MERGED-NEXT:   }
# MERGED-NEXT:   Pointer (0x1006) {
# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
# MERGED-NEXT:     PointeeType: const volatile void* const* const* const (0x1005)
# MERGED-NEXT:     PtrType: Near64 (0xC)
# MERGED-NEXT:     PtrMode: Pointer (0x0)
# MERGED-NEXT:     IsFlat: 0
# MERGED-NEXT:     IsConst: 1
# MERGED-NEXT:     IsVolatile: 0
# MERGED-NEXT:     IsUnaligned: 0
# MERGED-NEXT:     IsRestrict: 0
# MERGED-NEXT:     IsThisPtr&: 0
# MERGED-NEXT:     IsThisPtr&&: 0
# MERGED-NEXT:     SizeOf: 8
# MERGED-NEXT:   }
# MERGED-NEXT: ]
# MERGED-NEXT: MergedIDStream [
# MERGED-NEXT: ]

--- !COFF
header:          
  Machine:         IMAGE_FILE_MACHINE_AMD64
  Characteristics: [  ]
sections:        
  - Name:            '.debug$T'
    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
    Alignment:       1
    Types:           
      - Kind:            LF_PROCEDURE
        Procedure:       
          ReturnType:      3
          CallConv:        NearC
          Options:         [ None ]
          ParameterCount:  0
          ArgumentList:    4097
      - Kind:            LF_ARGLIST
        ArgList:         
          ArgIndices:      [  ]
      - Kind:            LF_POINTER
        Pointer:         
          ReferentType:    4099
          Attrs:           66572
      - Kind:            LF_POINTER
        Pointer:         
          ReferentType:    4100
          Attrs:           66572
      - Kind:            LF_POINTER
        Pointer:         
          ReferentType:    4101
          Attrs:           66572
      - Kind:            LF_MODIFIER
        Modifier:        
          ModifiedType:    3
          Modifiers:       [ None, Const, Volatile ]
      - Kind:            LF_POINTER
        Pointer:         
          ReferentType:    4098
          Attrs:           66572
symbols:         
...
